ACCESS

#include <io.h>          требуется только для объявления функции
            
int access(pathname, mode);
char *pathname;          	path-имя файла или директория
int mode;                	разрешенный доступ

Описание.
Для файлов функция access определяет, существует или нет определенный файл, может ли он быть доступен в заданном режиме mode. Возможные значения mode и их обозначения в вызовах access приведены ниже.

ЗНАЧЕНИЕ			СМЫСЛ ЗНАЧЕНИЯ
06         		Проверка   на  доступ  по  чтению   и   записи
04 			Проверка   на  доступ  по  чтения
02         		Проверка   на  доступ  по  записи
00         		Проверка   только на существование

В MS DOS все существующие файлы имеют доступ по чтению, поэтому режимы 00 и 04 вырабатывают один и тот же результат. Аналогично, режимы 06 и 02 являются эквивалентными, поскольку в MS DOS доступ по записи предполагает доступ по чтению. Для директориев access определяет, существуют или нет заданные директории; под управлением MS DOS все директории имеют доступ по чтению и записи.

Возвращаемое значение.
Функция access возвращает значение 0, если файл имеет заданный режим mode. Возвращаемое значение -1 свидетельствует о том, что названный файл не существует или недоступен в заданном mode, и errno устанавливается в одно из следующих значений:

ЗНАЧЕНИЕ                  	СМЫСЛ ЗНАЧЕНИЯ
EACCES               	Доступ  запрещен; установленный  статус для  файла  не допускает заданного  доступа
ENOENT               	Файл или path-имя не найдено

Пример:

#include <io.h>
#include <fcntl.h>
            
 int fh;
.
.
.
/* проверка доступа по записи */

            if ((access("data",2))==-1 
	{
                   perror("data file not writable");
                   exit(1);
       	}
                
            else
                   fh=open("data", O_WRONLY);
Hosted by uCoz